import { get, post } from "@/utils/request"
import { message } from "antd"

// 准备服务器地址
export const baseURL = 'https://www.codeboy.com/zhsqapi/' 
// 封装登录的请求
/**
8.1、管理员登录
  接口地址：admin/login
  请求方式：POST
  请求主体格式：application/json   
  请求数据说明：
  名称	必填	类型	说明
  aname	是	string	管理员登录名
  apwd	是	string	管理员登录密码
 */
export const adminLogin = async (user) => {
  // 拼接URL
  const url = baseURL + 'admin/login'
  // 加载中
  // 5秒钟自动关闭
  // message.loading('登录中',5)
  message.loading('登录中',0)  // 0取消自动关闭
  // 发请求
  const res = await fetch(url, {
    method: 'POST',
    headers: {  // 请求头
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(user)
  })
  // 获取响应体的JSON
  const data = await res.json()
  // 关闭加载中
  message.destroy()
  return data
}
/**
 8.3、修改当前登录的管理员密码
  接口地址：admin/update/pwd
  请求方式：POST
  请求主体格式：application/json
  请求头部：token
  请求数据说明：
  名称	必填	类型	说明
  token	是	string	请求头部中必须携带登录成功后得到的身份令牌，且必须在有效期内
  oldPwd	是	string	原有密码
  newPwd	是	string	新密码
 */
export const adminUpdatePwd = async (oldPwd,newPwd) => {
  // 1.拼接URL
  const url = baseURL + 'admin/update/pwd'
  // 2.显示加载中
  message.loading('加载中',0)
  // 3.发送请求
  const res = await fetch(url,{
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      token: localStorage.getItem('userToken')
    },
    body: JSON.stringify({oldPwd,newPwd})
  })
  const data = await res.json()
  // 4.隐藏加载中
  message.destroy()
  // 5.返回响应JSON
  return data
}

/**
 * 8.2、获取当前登录管理员的基础信息及权限信息
  接口地址：admin/info
  请求方式：GET
  请求主体：无
  请求参数：无
  请求头部：token - 管理员登录后保存在客户端的身份凭证
 */
export const adminInfo= async () => {
  // 发请求
  const data = await get(
    'admin/info',
    {token: localStorage.getItem('userToken')},
    {a:1,b:2}
  )
  return data
}
/**
  8.4、分页获取居民列表
  接口地址：admin/household/list
  请求方式：GET
  请求头部：token - 管理员登录后保存在客户端的身份凭证
  请求参数： 
  名称	必填	类型	说明
  pageNum	非必需	number	默认值为1；要查询的页号
  kw	非必需	string	待查询的居民姓名关键字
 */
export const adminHouseholdList = async (pageNum=1,kw='') => {
  // 发送请求
  const data = await get(
    'admin/household/list',
    {token: localStorage.getItem('userToken')},
    {pageNum,kw}
  )
  return data
}

/**
  8.8、添加新的居民记录
  接口地址：admin/household/add
  请求方式：POST
  请求主体格式：application/json
  请求头部：token - 管理员登录后保存在客户端的身份凭证
  请求参数： 
  名称	必填	类型	说明
  householdId	必需	string	待添加的居民户号
  householdName	必需	string	待添加的居民姓名
  householdAddr	可选	string	待添加的居民住址
  gender	必需	0或1	待添加的性别
  phone	必需	string	待添加的电话
  idNum	可选	string	带添加的身份证号

 */
export const adminHouseholdAdd = async (obj) => {
  const res = await post(
    'admin/household/add',
    {
      token: localStorage.getItem('userToken'),
      'Content-Type': 'application/json'
    },
    obj
  )
  return res
}

/**
  接口地址：admin/household/update
  请求方式：POST
  请求主体格式：application/json
  请求头部：token - 管理员登录后保存在客户端的身份凭证
  请求参数： 
  名称	必填	类型	说明
  hid	必需	number	待修改的居民编号
  householdId	可选	string	待修改的居民户号
  householdName	可选	string	待修改的居民姓名
  householdAddr	可选	string	待修改的居民住址
  gender	可选	0或1	待修改的性别
  phone	可选	string	待修改的电话
  idNum	可选	string	带修改的身份证号
 */
export const adminHouseholdUpdate = async (obj) => {
  const res = await post(
    'admin/household/update',
    {
      token: localStorage.getItem('userToken'),
      'Content-Type': 'application/json' 
    },
    obj
  )
  return res
}

/*
  8.6、删除特定居民记录
  接口地址：admin/household/delete
  请求方式：GET
  请求头部：token - 管理员登录后保存在客户端的身份凭证
  请求参数： 
  名称	必填	类型	说明
  hid	必需	number	待删除的居民编号
*/
export const adminHouseholdDelete = async (hid) => {
  const res = await get(
    'admin/household/delete',
    {
      token: localStorage.getItem('userToken')
    },
    { hid }
  )
  return res
}